﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace POVRay {
    public abstract class TransformationOperation {
        public Vector3 Value { get; set; }

        public static TransformationOperation[] operator &(TransformationOperation o1, TransformationOperation o2) {
            var operations = new List<TransformationOperation>() { o1, o2 };
            return operations.ToArray();
        }

        public static TransformationOperation[] operator &(TransformationOperation[] o1, TransformationOperation o2) {
            var operations = new List<TransformationOperation>();
            operations.AddRange(o1);
            operations.Add(o2);
            return operations.ToArray();
        }

        public static TransformationOperation[] operator &(TransformationOperation o1, TransformationOperation[] o2) {
            var operations = new List<TransformationOperation>();
            operations.Add(o1);
            operations.AddRange(o2);
            return operations.ToArray();
        }
    }
}
